The present invention generally relates to prestaging methods, buffer management methods and file systems, and more particularly to a prestaging method for reading data at a high speed when executing a job in a computer system, a buffer management method for use in the prestaging method, and a file system which can employ such a buffer management method.
FIG. 1 shows a computer system in which a prestaging process is carried out. The improvements in the performance of the recent computer systems are notable, but on the other hand, the difference between the performances of a central processing unit (CPU) and an input/output unit is becoming greater. In a normal computer system, the measures shown in FIG. 1 are taken so as to cope with the inevitably different performances of the CPU and the input/output unit.
In FIG. 1, a main storage 12 which is coupled to a CPU 11, a disk cache 13 which is used as a secondary storage and a disk 14 which is used as a secondary storage which have different processing speeds are arranged hierarchically, so as to improve the performance of the computer system as a whole.
If it can be predicted that a large amount of data on the order of Mbytes, for example, will be read when executing a job, as in the case of a super computer, the so-called "prestaging process" (or simply "prestaging") is carried out to input the data at a high speed. According to the prestaging technique, the input data are read into the disk cache 13, which can read and write data at a high speed, from the disk 14 which can only read and write data at a low speed, before execution of the job. The timing with which this prestaging is carried out affects the job execution performance and the performance of the computer system as a whole. For this reason, there is a demand to realize a method of determining an optimum prestaging start time for starting the prestaging.
According to a conventional prestaging method, the prestaging start time was set statically before the job is submitted into the computer system. In other words, the prestaging start time was determined from the job start time, the amount of input data related to the job and a data transfer speed from the disk 14 to the disk cache 13, by assuming that the data transfer speed is fixed.
However, the load on the computer system changes dynamically, and the data transfer speed actually changes depending on the situation. For this reason, even if the prestaging is started at the preset time according to the conventional prestaging method, the prestaging may end considerably before the job start time or, the prestaging may not end in its entirety by the job start time.
If the prestaging ends considerably before the job start time, one job will occupy a region of the disk cache 13 for a long time between the end of the prestaging and the start of the job, and there is a problem in that the performance of other jobs will be deteriorated thereby. In addition, the region used by the prestaging may be taken over by another job, in which case the prestaged data will be erased. In this case, the data must be read again from the disk 14 when executing the job, and there is a problem in that the execution performance of the job deteriorates because the data can only be read from the disk 14 at the low speed.
On the other hand, if the entire prestaging does not end by the job start time, only a part of the data is prestaged. Hence, in this case, the remaining data must be read from the disk 14 when executing the job, and there is a problem in that the execution performance of the job deteriorates because the remaining data can only be read from the disk 14 at the low speed.